
/*    HTTP Host:  static.ak.connect.facebook.com                               */
/*    Generated:  October 22nd 2009 1:17:15 AM PDT                             */
/*      Machine:  10.17.42.168                                                 */
/*       Source:  Local/Global Cache                                           */
/*     Location:  JIT Construction: v195179                                    */
/*       Locale:  en_US                                                        */
/*   Components:  js/connect/core/FB/prelude.js:r194425,js/connect/core/FB/log.js:r194425,js/connect/core/FB/class.js:r194425,js/connect/core/FB/Type.js:r194425,js/connect/core/FB/HiddenContainer.js:r194425,js/connect/core/FB/HiddenContainerLoad.js:r194425,js/connect/core/FB/Delegate.js:r194425,js/connect/core/FB/Loader.js:r194425,js/connect/core/FB/Bootstrap.js:r194425,js/api_lib/v0.4/XdCommReceiver.js:r194425 */
if (!window.FB) {
	FB = {};
}
if (!FB.dynData) {
	FB.dynData = {"site_vars":{"canvas_client_compute_content_size_method":1, "use_postMessage":1, "enable_custom_href":0}, "resources":{"base_url_format":"http://{0}.connect.facebook.com/", "base_cdn_url":"http://static.ak.fbcdn.net/", "api_channel":163033, "api_server":163033, "www_channel":171762, "xd_proxy":190951, "xd_comm_swf_url":"http://static.ak.connect.facebook.com/swf/XdComm.swf", "share_button":"http://static.ak.fbcdn.net/rsrc.php/zAB5S/hash/4273uaqa.gif", "login_img_dark_small_short":"http://static.ak.fbcdn.net/rsrc.php/zF1W2/hash/a969rwcd.gif", "login_img_dark_medium_short":"http://static.ak.fbcdn.net/rsrc.php/zEF9L/hash/156b4b3s.gif", "login_img_dark_medium_long":"http://static.ak.fbcdn.net/rsrc.php/zBIU2/hash/85b5jlja.gif", "login_img_dark_large_short":"http://static.ak.fbcdn.net/rsrc.php/z1UX3/hash/a22m3ibb.gif", "login_img_dark_large_long":"http://static.ak.fbcdn.net/rsrc.php/z7SXD/hash/8mzymam2.gif", "login_img_light_small_short":"http://static.ak.fbcdn.net/rsrc.php/zDGBW/hash/8t35mjql.gif", "login_img_light_medium_short":"http://static.ak.fbcdn.net/rsrc.php/z38X1/hash/6ad3z8m6.gif", "login_img_light_medium_long":"http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif", "login_img_light_large_short":"http://static.ak.fbcdn.net/rsrc.php/zA114/hash/7e3mp7ee.gif", "login_img_light_large_long":"http://static.ak.fbcdn.net/rsrc.php/z4Z4Q/hash/8rc0izvz.gif", "login_img_white_small_short":"http://static.ak.fbcdn.net/rsrc.php/z900E/hash/di0gkqrt.gif", "login_img_white_medium_short":"http://static.ak.fbcdn.net/rsrc.php/z10GM/hash/cdozw38w.gif", "login_img_white_medium_long":"http://static.ak.fbcdn.net/rsrc.php/zBT3E/hash/338d3m67.gif", "login_img_white_large_short":"http://static.ak.fbcdn.net/rsrc.php/zCOUP/hash/8yzn0wu3.gif", "login_img_white_large_long":"http://static.ak.fbcdn.net/rsrc.php/zC6AR/hash/5pwowlag.gif", "logout_img_small":"http://static.ak.fbcdn.net/rsrc.php/z2Y31/hash/cxrz4k7j.gif", "logout_img_medium":"http://static.ak.fbcdn.net/rsrc.php/zAD8D/hash/4lsqsd7l.gif", "logout_img_large":"http://static.ak.fbcdn.net/rsrc.php/zB36N/hash/4515xk7j.gif"}};
}
if (!FB.locale) {
	FB.locale = "en_US";
}
if (!FB.localeIsRTL) {
	FB.localeIsRTL = false;
}
if (!window.FB) {
	FB = {};
}
FB.forEach = function (item, fn, proto) {
	if (Object.prototype.toString.apply(item) === "[object Array]") {
		if (item.forEach) {
			item.forEach(fn);
		} else {
			for (var i = 0, l = item.length; i < l; i++) {
				fn(item[i], i, item);
			}
		}
	} else {
		for (var key in item) {
			if (proto || item.hasOwnProperty(key)) {
				fn(item[key], key, item);
			}
		}
	}
};
FB.copy = function (target, source, overwrite) {
	FB.forEach(source, function (value, key) {
		if (overwrite || typeof target[key] === "undefined") {
			target[key] = value;
		}
	});
};
FB.copy(FB, {$:function (id) {
	return document.getElementById(id);
}, TypeLoader:{NOTIFY:{}, LOADED_MODULES:{}, LOADED_CLASSES:{}, resolve:function (root, parts, create) {
	for (var i = 0, l = parts.length; i < l; i++) {
		var part = parts[i];
		if (part === "") {
			continue;
		}
		if (typeof root[part] === "undefined") {
			if (create) {
				root[part] = {};
			} else {
				return false;
			}
		}
		root = root[part];
	}
	return root;
}, provide:function (name, feature, append) {
	var target = this.resolve(window, name.split("."), true);
	if (append || !this.LOADED_MODULES[name]) {
		FB.copy(target, feature, true);
	} else {
		return;
	}
	if (target._onLoad) {
		target._onLoad();
	}
	this.LOADED_MODULES[name] = true;
}, subclass:function (name, base, proto) {
	if (this.LOADED_CLASSES[name]) {
		return;
	}
	if (base !== "FB.Class" && !this.LOADED_CLASSES[base]) {
		FB.Log.debug("\"" + name + "\" needs to wait for \"" + base + "\"");
		var redo = FB.redo(arguments, this);
		this.NOTIFY[base] ? this.NOTIFY[base].push(redo) : this.NOTIFY[base] = [redo];
		return;
	}
	var baseClass = this.resolve(window, base.split(".")), newClass = baseClass.extend(proto), notify = this.NOTIFY[name], parts = name.split("."), existing = this.resolve(window, parts, true), baseName = parts.pop();
	FB.copy(newClass, existing);
	this.resolve(window, parts)[baseName] = newClass;
	this.LOADED_CLASSES[name] = true;
	if (notify) {
		FB.forEach(notify, function (cb) {
			cb();
		});
		delete this.NOTIFY[name];
	}
}}, bind:function () {
	var args = Array.prototype.slice.call(arguments), fn = args.shift(), context = args.shift();
	var result = function () {
		return fn.apply(context, args.concat(Array.prototype.slice.call(arguments)));
	};
	result._targets = [context, fn];
	return result;
}, redo:function (args, self) {
	var f = Array.prototype.slice.call(args);
	f.unshift(self);
	f.unshift(args.callee);
	return FB.bind.apply(FB, f);
}});
FB.provide = FB.bind(FB.TypeLoader.provide, FB.TypeLoader);
FB.subclass = FB.bind(FB.TypeLoader.subclass, FB.TypeLoader);
FB.provide("FB.Log", {level:3, Level:{DEBUG:3, INFO:2, WARNING:1, ERROR:0}, _helper:function () {
	var args = Array.prototype.slice.call(arguments), name = args.shift(), level = args.shift();
	if (this.level >= level && window.console) {
		(console[name] || console.log).apply(console, args);
	}
}});
FB.provide("FB.Log", {debug:FB.bind(FB.Log._helper, FB.Log, "debug", FB.Log.Level.DEBUG), info:FB.bind(FB.Log._helper, FB.Log, "info", FB.Log.Level.INFO), warn:FB.bind(FB.Log._helper, FB.Log, "warn", FB.Log.Level.WARNING), error:FB.bind(FB.Log._helper, FB.Log, "error", FB.Log.Level.ERROR)}, true);
(function () {
	var initializing = false, fnTest = /xyz/.test(function () {
		xyz;
	}) ? /\b_super\b/ : /.*/;
	FB.Class = function () {
	};
	FB.Class.extend = function (prop) {
		var _super = this.prototype;
		initializing = true;
		var prototype = new this();
		initializing = false;
		FB.forEach(prop, function (value, name) {
			prototype[name] = typeof value === "function" && typeof _super[name] === "function" && fnTest.test(value) ? (function (name, fn) {
				return function () {
					var tmp = this._super;
					this._super = _super[name];
					var ret = fn.apply(this, arguments);
					this._super = tmp;
					return ret;
				};
			})(name, value) : value;
		});
		var NewClass = function () {
			if (!initializing) {
				var self;
				if (this instanceof NewClass) {
					self = this;
				} else {
					initializing = true;
					self = new NewClass();
					initializing = false;
				}
				if (self.init) {
					self.init.apply(self, arguments);
				}
				return self;
			}
		};
		NewClass.prototype = prototype;
		NewClass.constructor = NewClass;
		NewClass.extend = FB.Class.extend;
		return NewClass;
	};
})();
if (!window.FB) {
	FB = {};
}
if (!FB.Type) {
	FB.Type = {createNamespace:function (name) {
		var ns = window;
		var nameParts = name.split(".");
		for (var i = 0; i < nameParts.length; i++) {
			var part = nameParts[i];
			var nso = ns[part];
			if (!nso) {
				ns[part] = nso = {};
			}
			ns = nso;
		}
		return ns;
	}, createEnum:function (fullName, fields, flags) {
		if (this.getObj(fullName)) {
			return;
		}
		var cls = function () {
		};
		cls.prototype = fields;
		for (var field in fields) {
			cls[field] = fields[field];
		}
		if (flags) {
			cls.__flags = true;
		}
		this.setObj(fullName, cls);
	}, createClass2:function (cls, baseType) {
		if (baseType && typeof (baseType) == "string") {
			baseType = eval(baseType);
		}
		cls.prototype.constructor = cls;
		this.extend(cls, FB.Type.Methods);
		cls.__baseType = baseType || Object;
		if (baseType) {
			cls.__basePrototypePending = true;
		}
	}, setObj:function (fullName, value) {
		var i = fullName.lastIndexOf(".");
		var objName;
		var scope = window;
		if (i > 0) {
			var ns = fullName.substring(0, i);
			this.createNamespace(ns);
			objName = fullName.substring(i + 1);
			scope = eval(ns);
		} else {
			objName = fullName;
		}
		scope[objName] = value;
	}, getObj:function (name) {
		var ns = window;
		var nameParts = name.split(".");
		for (var i = 0; i < nameParts.length; i++) {
			var part = nameParts[i];
			ns = ns[part];
			if (!ns) {
				break;
			}
		}
		return ns;
	}, createClass:function (fullName, info) {
		if (this.getObj(fullName)) {
			return;
		}
		if (arguments.length == 1 && typeof (fullName) != "string") {
			return this._createClass(fullName);
		} else {
			this.setObj(fullName, this._createClass(info));
		}
	}, _createClass:function (info) {
		var cls = info["ctor"] || function () {
		};
		if (info["static_ctor"]) {
			this.addStaticInit(info["static_ctor"]);
		}
		if (info["instance"]) {
			cls.prototype = info["instance"];
		}
		if (info["static"]) {
			this.extend(cls, info["static"]);
		}
		this.createClass2(cls, info["base"]);
		return cls;
	}, addStaticInit:function (callback) {
		if (!FB.Type._pendingInits) {
			FB.Type._pendingInits = [];
		}
		FB.Type._pendingInits[FB.Type._pendingInits.length] = callback;
		window.setTimeout(FB.Type.runPendingInits, 0);
	}, runPendingInits:function () {
		if (FB.Type._pendingInits) {
			var callbacks = FB.Type._pendingInits;
			FB.Type._pendingInits = null;
			var c = callbacks.length;
			for (var i = 0; i < c; i++) {
				callbacks[i]();
			}
		}
	}, extend:function (destination, source) {
		for (var property in source) {
			destination[property] = source[property];
		}
		return destination;
	}, getInstanceType:function (inst) {
		return inst.constructor;
	}};
	FB.Type.Methods = {setupBase:function () {
		if (this.__basePrototypePending) {
			var baseType = this.__baseType;
			if (baseType.__basePrototypePending) {
				baseType.setupBase();
			}
			for (var memberName in baseType.prototype) {
				var memberValue = baseType.prototype[memberName];
				if (!this.prototype[memberName]) {
					this.prototype[memberName] = memberValue;
				}
			}
			delete this.__basePrototypePending;
		}
	}, constructBase:function (instance, args) {
		if (this.__basePrototypePending) {
			this.setupBase();
		}
		if (!args) {
			this.__baseType.apply(instance);
		} else {
			this.__baseType.apply(instance, args);
		}
	}, callBase:function (instance, name, args) {
		var baseMethod = this.__baseType.prototype[name];
		if (!args) {
			return baseMethod.apply(instance);
		} else {
			return baseMethod.apply(instance, args);
		}
	}, get_baseType:function () {
		return this.__baseType || null;
	}};
}
FB.provide("FB.HiddenContainer", {_onLoad:function () {
	if (document.getElementById("FB_HiddenContainer") == null) {
		var hiddenDiv;
		try {
			if ((!document.readyState || document.readyState == "complete") && document.body) {
				hiddenDiv = document.createElement("div");
				hiddenDiv.id = "FB_HiddenContainer";
				hiddenDiv.style.position = "absolute";
				hiddenDiv.style.top = "-10000px";
				hiddenDiv.style.width = "0px";
				hiddenDiv.style.height = "0px";
				document.body.appendChild(hiddenDiv);
			}
		}
		catch (e) {
			hiddenDiv = null;
		}
		if (!hiddenDiv) {
			document.write("<div id=\"FB_HiddenContainer\" " + "style=\"position:absolute; top:-10000px; left:-10000px; width:0px; height:0px;\" >" + "</div>");
		}
	}
}, get:function () {
	return FB.$("FB_HiddenContainer");
}});
FB.provide("FB.HiddenContainerLoader", {_onLoad:function () {
	FB.HiddenContainer.get();
}});
FB.subclass("FB.Delegate", "FB.Class", {});
FB.provide("FB.Delegate", {Null:function () {
}, _create:function (targets) {
	var delegate = function () {
		if (targets.length == 2) {
			return targets[1].apply(targets[0], arguments);
		} else {
			var targets_copy = targets.slice();
			for (var i = 0; i < targets_copy.length; i += 2) {
				targets_copy[i + 1].apply(targets_copy[i], arguments);
			}
			return null;
		}
	};
	delegate._targets = targets;
	return delegate;
}, create:function (object, method) {
	if (!object) {
		return method;
	}
	return FB.Delegate._create([object, method]);
}, combine:function (delegate1, delegate2) {
	if (!delegate1) {
		if (!delegate2._targets) {
			return FB.Delegate.create(null, delegate2);
		}
		return delegate2;
	}
	if (!delegate2) {
		if (!delegate1._targets) {
			return FB.Delegate.create(null, delegate1);
		}
		return delegate1;
	}
	var targets1 = delegate1._targets ? delegate1._targets : [null, delegate1];
	var targets2 = delegate2._targets ? delegate2._targets : [null, delegate2];
	return FB.Delegate._create(targets1.concat(targets2));
}, remove:function (delegate1, delegate2) {
	if (!delegate1 || (delegate1 === delegate2)) {
		return null;
	}
	if (!delegate2) {
		return delegate1;
	}
	var targets = delegate1._targets;
	var object = null;
	var method;
	if (delegate2._targets) {
		object = delegate2._targets[0];
		method = delegate2._targets[1];
	} else {
		method = delegate2;
	}
	for (var i = 0; i < targets.length; i += 2) {
		if ((targets[i] === object) && (targets[i + 1] === method)) {
			if (targets.length == 2) {
				return null;
			}
			targets.splice(i, 2);
			return FB.Delegate._create(targets);
		}
	}
	return delegate1;
}});
if (!window.Delegate) {
	window.Delegate = FB.Delegate;
}
if (!window.FB) {
	FB = {};
}
if (!FB.Loader) {
	FB.Loader = {loaded:{}, loading:{}, loadedCss:{}, loadedCallback:null, onScriptLoaded:function (components) {
		var c = components.length;
		for (var i = 0; i < c; i++) {
			var name = components[i];
			FB.Loader.loaded[name] = true;
		}
		if (FB.Loader.loadedCallback) {
			window.setTimeout(function () {
				FB.Loader.loadedCallback(components);
			}, 0);
		}
	}, loadCssComps:function (cssComps) {
		var cssSrc = FB.Loader.getStaticResourceUrl("connect.php/" + FB.locale + "/css/" + cssComps.join("/"));
		if (!this.loadedCss[cssSrc]) {
			var linkElement = document.createElement("link");
			linkElement.setAttribute("rel", "stylesheet");
			linkElement.setAttribute("type", "text/css");
			linkElement.setAttribute("href", cssSrc);
			document.getElementsByTagName("head")[0].appendChild(linkElement);
			this.loadedCss[cssSrc] = true;
		}
	}, getStaticResourceUrl:function (path) {
		var base_url_format = FB.dynData.resources.base_url_format;
		var prefix = (base_url_format.indexOf("https") === 0) ? "ssl" : "static.ak";
		return base_url_format.replace("{0}", prefix) + path;
	}};
}
if (!FB.Bootstrap) {
	FB.Bootstrap = {requireFeatures:function (features, callback) {
		if (FB.Bootstrap.isXdChannel) {
			return;
		}
		var request = {"features":features, "callback":callback, "completed":false};
		if (FB.Bootstrap._checkRequest(request)) {
			return;
		}
		FB.Bootstrap._featureReqQueue.push(request);
		FB.Loader.loadedCallback = FB.Delegate.combine(FB.Loader.loadedCallback, FB.Bootstrap._onCompLoaded);
		FB.Bootstrap._transformFeatureList(features);
		var map = {};
		var arr = [];
		var i;
		var c = features.length;
		var loadedCount = 0;
		for (i = 0; i < c; i++) {
			var feature = features[i];
			if (FB.Loader.loaded[feature]) {
			} else {
				if (!(FB.Loader.loaded[feature] || FB.Loader.loading[feature])) {
					map[feature] = true;
					arr[arr.length] = feature;
				}
			}
		}
		arr.sort();
		var url = FB.Loader.getStaticResourceUrl("connect.php/" + FB.locale + "/js/" + arr.join("/"));
		FB.Bootstrap.addScript(url);
	}, _onCompLoaded:function () {
		var i = 0;
		var c = FB.Bootstrap._featureReqQueue.length;
		for (i = 0; i < c; i++) {
			FB.Bootstrap._checkRequest(FB.Bootstrap._featureReqQueue[i]);
		}
	}, _checkRequest:function (req) {
		if (!req.completed) {
			var i = 0;
			var c = req.features.length;
			var loadedCount = 0;
			for (i = 0; i < c; i++) {
				var feature = req.features[i];
				if (FB.Loader.loaded[feature]) {
					loadedCount++;
				}
			}
			if (loadedCount == c) {
				req.completed = true;
				if (req.callback) {
					req.callback();
				}
			}
		}
		return req.completed;
	}, _transformFeatureList:function (features) {
		var featuresToPackageMap = {"Api":true, "CanvasUtil":true, "Connect":true, "XFBML":true};
		var c = features.length;
		var needPackage = false;
		var map = {};
		for (var i = 0; i < c; i++) {
			map[features[i]] = true;
			if (featuresToPackageMap[features[i]]) {
				needPackage = true;
			}
		}
		if (needPackage) {
			for (var key in featuresToPackageMap) {
				if (!map[key]) {
					features[features.length] = key;
				}
			}
		}
	}, ensureInit:function (callback) {
		if (!callback) {
			throw ("FB.ensureInit called without a valid callback");
		}
		if (FB.Facebook && FB.Facebook.get_initialized && FB.Facebook.get_initialized().get_isReady() && FB.Facebook.get_initialized().result) {
			return callback();
		}
		FB.Bootstrap.requireFeatures(FB.Bootstrap.features, function () {
			FB.Facebook.get_initialized().waitForValue(true, callback);
		});
	}, init:function (api_key, xd_receiver, appSettings) {
		FB.Bootstrap.requireFeatures(FB.Bootstrap.features, function () {
			if (FB.Facebook) {
				FB.Facebook.init(api_key, xd_receiver, appSettings);
			}
		});
	}, addScript:function (src) {
		var scriptElement;
		var scriptElements = document.getElementsByTagName("script");
		if (scriptElements) {
			var c = scriptElements.length;
			for (var i = 0; i < c; i++) {
				scriptElement = scriptElements[i];
				if (scriptElement.src == src) {
					return;
				}
			}
		}
		scriptElement = document.createElement("script");
		scriptElement.type = "text/javascript";
		scriptElement.src = src;
		var parent = document.getElementsByTagName("HEAD")[0] || document.body;
		parent.appendChild(scriptElement);
	}, setLocale:function (locale, isRTL) {
		window.FB.locale = locale;
		window.FB.localeIsRTL = isRTL;
	}, initializeXdChannel:function () {
		FB.Bootstrap.isXdChannel = window.location.search.indexOf(FB.Bootstrap.fbc_channel_token) >= 0;
	}, detectDocumentNamespaces:function () {
		if (document.namespaces && !document.namespaces.item["fb"]) {
			document.namespaces.add("fb");
		}
	}, createDefaultXdChannelUrl:function () {
		var xd_receiver = location.protocol + "//" + location.hostname + location.pathname + location.search;
		if (location.search || location.search.length > 0) {
			xd_receiver += "&";
		} else {
			xd_receiver += "?";
		}
		xd_receiver += "fbc_channel=1";
		return xd_receiver;
	}, features:["XFBML", "CanvasUtil"], fbc_channel_token:"fbc_channel=1", _featureReqQueue:[]};
	window.FB_RequireFeatures = FB.Bootstrap.requireFeatures;
	window.FB.init = FB.Bootstrap.init;
	window.FB.ensureInit = FB.Bootstrap.ensureInit;
}
FB.Bootstrap.initializeXdChannel();
FB.Bootstrap.detectDocumentNamespaces();
if (!window.FBIntern) {
	FBIntern = {};
}
if (!FBIntern.XdReceiver) {
	FBIntern.XdReceiver = {delay:100, timerId:-1, dispatchMessage:function () {
		var pathname = document.URL;
		var hashIndex = pathname.indexOf("#");
		var hash;
		if (hashIndex > 0) {
			hash = pathname.substring(hashIndex + 1);
		} else {
			hashIndex = pathname.indexOf("fb_login&");
			if (hashIndex > 0) {
				hash = pathname.substring(hashIndex + 9);
			} else {
				return;
			}
		}
		var debugFlag = "debug=1&";
		if (hash.indexOf(debugFlag) == 0) {
			hash = hash.substring(debugFlag.length);
		}
		var packet_string;
		var func = null;
		try {
			var hostWindow = window.parent;
			if (hash.indexOf("fname=") == 0) {
				var packetStart = hash.indexOf("&");
				var frame_name = hash.substr(6, packetStart - 6);
				if (frame_name == "_opener") {
					hostWindow = hostWindow.opener;
				} else {
					if (frame_name == "_oparen") {
						hostWindow = hostWindow.opener.parent;
					} else {
						if (frame_name != "_parent") {
							hostWindow = hostWindow.frames[frame_name];
						}
					}
				}
				packet_string = hash.substr(packetStart + 1);
			} else {
				hostWindow = hostWindow.parent;
				packet_string = hash;
			}
			func = hostWindow.FB.XdComm.Server.singleton.onReceiverLoaded;
		}
		catch (e) {
			if (e.number == -2146828218) {
				return;
			}
		}
		if (func) {
			hostWindow.FB.XdComm.Server.singleton.onReceiverLoaded(packet_string);
			if (FBIntern.XdReceiver.timerId != -1) {
				window.clearInterval(FBIntern.XdReceiver.timerId);
				FBIntern.XdReceiver.timerId = -1;
			}
		} else {
			if (FBIntern.XdReceiver.timerId == -1) {
				try {
					FBIntern.XdReceiver.timerId = window.setInterval(FBIntern.XdReceiver.dispatchMessage, FBIntern.XdReceiver.delay);
				}
				catch (e) {
				}
			}
		}
	}};
	if (!(window.FB && FB.Bootstrap && !FB.Bootstrap.isXdChannel)) {
		try {
			FBIntern.XdReceiver.dispatchMessage();
		}
		catch (e) {
		}
	}
}
(function () {
	var scripts = document.getElementsByTagName("script");
	var this_script_tag = scripts[scripts.length - 1];
	if (this_script_tag != undefined) {
		var apikey = this_script_tag.getAttribute("fb-api-key");
		var receiver = this_script_tag.getAttribute("fb-xd-receiver");
		if (apikey != null) {
			window.setTimeout(function () {
				FB.init(apikey, receiver);
			}, 0);
		}
	}
})();
FB.Loader.onScriptLoaded(["FB.Prelude", "FB.Log", "FB.Class", "FB.Type", "FB.HiddenContainer", "FB.HiddenContainerLoader", "FB.Delegate", "FB.Loader", "FB.Bootstrap", "XdCommReceiver"]);

